Perhaps video games are the best known form of computer graphics systems. However, the science involves a considerable number of other forms of display apparatus as for training, design, modeling and so on. Typically, these systems give the viewer an impression of looking through a window at a large picture. Essentially, the computer graphics system selects image content from object data, orients it with respect to the window and displays it as a logical picture.
One computer graphics technique forms pictures from polygons (closed outlines bounded by straight edges) that define the basic solid areas of gray or color to constitute an object for the display. Conventional practice involves orienting such polygons with respect to a viewpoint, scanning them to determine individual picture elements (pixels) of the display then processing data for the individual pixels. Essentially, the scan conversion and processing of a polygon involves finding all the unobstructed pixels inside the polygon boundaries and generating a display by appropriately setting the color and intensity for each pixel. In a traditional display, a million pixels may be employed to compose a picture.
Typically, preparatory to the display of a picture, image data is stored as a pattern of binary digital numbers that represent a rectangular array of pixels. For the display, pixel data may be supplied from storage to a cathode ray tube which displays the pixels in a raster pattern, a succession of scan lines each of which consists of a row of individual pixels. The raster pattern is most familiar in television displays.
Utilizing the techniques mentioned above, current computer graphics systems are capable of providing realistic images from primitives as planar polygons. As indicated above, the generation of such images involves selecting portions of these polygons which appear in the display. In that regard, several hidden surface and clipping techniques are in widespread use to eliminate obstructed surfaces and surfaces outside the viewing window. One system of clipping objects outside the field of vision is disclosed in U.S. Pat. No. 3,816,726 granted June 11, 1974, to Ivan E. Sutherland et al.
Some of the prior art techniques for treating hidden surfaces are disclosed in U.S. Pat. No. 3,602,702 granted Aug. 31, 1971, to John E. Warnock. Hidden surface techniques essentially determine the priority of interfering polygons. For example, when two spaced-apart polygons are intersected by a line of sight, the polygon closest to the viewpoint is given priority, and accordingly provides the data for the pixels involved in the contention. In general, the system of the present invention resolves priority between contending polygons at specific locations, e.g. pixels or subpixels.
In determining priority between a pair of polygons, an edge may be defined where the planes of the two polygons intersect. Of course, such an edge appears in the display and may have an undesirable jagged or staircase appearance. Such edges are somewhat common in raster displays and are well known in television pictures. Such defects are generally called "aliasing" or "rastering". They can be avoided by filtering the pixels through which the edge passes. The present invention incorporates such techniques to accomplish improved displays.
Summarizing, quality pictures can be produced by raster scan techniques that involve: (1) prioritizing image-source polygons with respect to a viewpoint so as to define individual pixels that eliminate hidden surfaces; (2) filtering the pixels that lie on an edge between the image polygons to reduce jagged demarcations; and (3) smooth shading the image polygons to reduce the appearance of individual polygons. Each of these techniques is well known in the prior art, and apparatus for its implementation is in widespread use. The present invention primarily impacts the techniques: (1) prioritizing and (2) filtering.
In general, the system of the present invention is embodied as a process or product for resolving priority between polygons contending for individual areas in a display, e.g. pixels or subpixels. Priority is resolved by defining the edge where the planes of the two polygons intersect, then by applying a simple test of sign values after transforming the edge to the space of the display screen and determining the slope of such an edge. Along with resolving priority between contending polygons, the system as disclosed herein filters the pixel data. Accordingly, the system facilitates production of relatively clean, sharp edges in a video graphics raster scan display.